package cn.infrabase.core.thread;

import java.util.concurrent.TimeUnit;

/**
 * 线程工具类。
 *
 * @author Weimin Gao
 * @since 1.0.0
 **/
public class ThreadUtils {

	/**
	 * 挂起当前线程。
	 *
	 * @param millis 挂起毫秒数。
	 * @return 真（true）表示挂起成功。
	 */
	@SuppressWarnings("all")
	public static boolean sleep(long millis) {
		return sleep(millis, TimeUnit.MILLISECONDS);
	}

	/**
	 * 挂起当前线程。
	 *
	 * @param timeout 挂起时间。
	 * @param unit    挂起时间单位。
	 * @return 真（true）表示挂起成功。
	 */
	public static boolean sleep(long timeout, TimeUnit unit) {
		if (timeout > 0) {
			try {
				unit.sleep(timeout);
			} catch (InterruptedException e) {
				return false;
			}
		}
		return true;
	}
}
